package br.unifor.ads.pjappfinanceiro.business;

import java.sql.SQLException;

import org.apache.log4j.Logger;

import br.unifor.ads.pjappfinanceiro.dao.FornecedoresDAO;
import br.unifor.ads.pjappfinanceiro.entity.Fornecedores;
import br.unifor.ads.pjappfinanceiro.exceptions.BusinessException;
import br.unifor.ads.pjappfinanceiro.internacionalizacao.Messages;

public class FornecedorBusiness {

	Logger logger = Logger.getLogger(UsuarioBussiness.class);
	private static FornecedoresDAO fornecedorDAO = new FornecedoresDAO();

	public void cadastrarFornecedor(Fornecedores fornecedor) throws BusinessException {
		logger.debug("iniciando o método: "
				+ new Throwable().getStackTrace()[0]);

		try {
			fornecedorDAO.salvar(fornecedor);
		} catch (SQLException e) {
			logger.error(Messages.MSG_INSERCAO_EX, e);
			throw new BusinessException(Messages.MSG_INSERCAO_EX);
		}

		logger.debug("finalizando o método: "
				+ new Throwable().getStackTrace()[0]);
	}
		
	
	
	public void alterarFornecedor(Fornecedores fornecedor) throws BusinessException {
		logger.debug("iniciando o método: "
				+ new Throwable().getStackTrace()[0]);

		try {
			fornecedorDAO.atualizar(fornecedor);
		} catch (SQLException e) {
			logger.error(Messages.MSG_ATUALIZACAO_EX1, e);
			throw new BusinessException(Messages.MSG_ATUALIZACAO_EX1);
		}

		logger.debug("finalizando o método: "
				+ new Throwable().getStackTrace()[0]);
	}
	
	
	
	public void excluirFornecedor(Integer id) throws BusinessException {
		logger.debug("iniciando o método: "
				+ new Throwable().getStackTrace()[0]);

		try {
			
			fornecedorDAO.excluirPorId(id);
		} catch (SQLException e) {
			logger.error(Messages.MSG_INSERCAO_EX, e);
			throw new BusinessException(Messages.MSG_INSERCAO_EX);
		}

		logger.debug("finalizando o método: "
				+ new Throwable().getStackTrace()[0]);

	}
	
	
	public Fornecedores localizarFornecedorPorCNPJ(String cnpj)
			throws BusinessException {
		logger.debug("iniciando o método: "
				+ new Throwable().getStackTrace()[0]);

		try {

			return fornecedorDAO.buscarPorCNPJ(cnpj);
		} catch (SQLException e) {
			logger.error(Messages.MSG_BUSCA_EX, e);
			throw new BusinessException(Messages.MSG_BUSCA_EX);
		}

	}	
	
}
